<?php

class Matricula_Model extends CI_Model {

    function grabarInscripcion($parameters) {
        $this->db->trans_start();
        $insert = array(
            "estudiante_ide_est" => $parameters['estudiante_ide_est'],
            "fechapre_matr" => $parameters['fechapre_matr'],
            "fecha_matr" => $parameters['fecha_matr'],
            "estado_matr" => $parameters['estado_matr'],
            "nro_matr" => $parameters['nro_matr'],
            "inscrip_matr" => $parameters['inscrip_matr'],
            "tipo_matr" => $parameters['tipo_matr'],
            "observ_mat" => $parameters['observ_mat'],
            "modo_mat" => $parameters['modo_mat'],
            "eliminado" => 0);
        $this->db->insert("matriculas", $insert);
        $ide=$this->db->insert_id();
        $this->db->trans_complete();
        return $ide;
        
    }
    /*
            "estado_matr" => 1, //1 - proceso, 2 - aprobado , 3 -negada , 4 - devuelto -5 retirado
            "inscrip_matr" => 4, // 1=>inscripcion 2=>inscrp-matr 3=>paso inscri   4=> paso inscr para otros ciclos
            "forma_pago" => $this->input->post('forma_pago'), //8 ,9 10 becas al contado, 4,5,6 becas financiadas
            "tipo_resol_mat" => $this->input->post('tipo_resol_mat'), //0=> NIN , 1=> ACAD 2=>DISCAP 3=>CONSEJO 4=>SNIESE
            "tipo_matr" => $this->input->post('tipo_matr'), //1 - ordinaria, 2 -extra , 3 - especial 
            "modo_mat" => $this->input->post('modo_mat'), // 1 (normal), 2- norma-arrastre 3- convalida 4-arrastre.
                        5 - por materias y 6 - para seminarios de alumnos no matriculados en el ciclo actual 

    */

    function grabarMatodos($parameters) {
        $this->db->trans_start();
        $insert = array(
            "estudiante_ide_est" => $parameters['estudiante_ide_est'],
            "fechapre_matr" => $parameters['fechapre_matr'],
            "fecha_matr" => $parameters['fecha_matr'],
            "estado_matr" => $parameters['estado_matr'],
            "nro_matr" => $parameters['nro_matr'],
            "inscrip_matr" => $parameters['inscrip_matr'],
            "forma_pago" => $parameters['forma_pago'],
            "tipo_resol_mat" => $parameters['tipo_resol_mat'],
            "tipo_matr" => $parameters['tipo_matr'],
            "observ_mat" => $parameters['observ_mat'],
            "modo_mat" => $parameters['modo_mat'],
            "eliminado" => 0);
        $this->db->insert("matriculas", $insert);
        
        $ide=$this->db->insert_id();
        $this->db->trans_complete();
        return $ide; 
        
    }

    function actualizarInscripcion($parameters) {
        $this->db->trans_start();
        $update = array(
            "fechapre_matr" => $parameters['fechapre_matr'],
            "fecha_matr" => $parameters['fecha_matr'],
            "inscrip_matr" => $parameters['inscrip_matr'], // 0=> inscripcion , 1=> inscripcion/matricula
            "modo_mat" => $parameters['modo_mat'],//para indicar si es normal o por convalidacion
            "observ_mat" => $parameters['observ_mat']);

        $this->db->where("id_matr", $parameters['id_matr']);
        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }

    function actualizaMatricula($parameters, $id_matr) {
        $this->db->trans_start();
        $update = array(
            "fecha_matr" => $parameters['fecha_matr'],
            "estado_matr" => $parameters['estado_matr'],
            "nro_matr" => $parameters['nro_matr'],
            "inscrip_matr" => $parameters['inscrip_matr'],
            "forma_pago" => $parameters['forma_pago'],
            "tipo_resol_mat" => $parameters['tipo_resol_mat'],
            "tipo_matr" => $parameters['tipo_matr'],
            "modo_mat" => $parameters['modo_mat'],
            "observ_mat" => $parameters['observ_mat'],
            "eliminado" => 0);

        //print_r($update);
        $this->db->where("id_matr", $id_matr);
        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }

    function actualizaMatriculaPagos($parameters, $id_matr) {
        $this->db->trans_start();


        $update = array(
            "estado_matr" => $parameters['estado_matr'],
            "fecha_canc_ins" => $parameters['fecha_canc_ins'],
            "monto_canc_ins" => $parameters['monto_canc_ins'],
            "fecha_canc_matr" => $parameters['fecha_canc_matr'],
            "monto_canc_matr" => $parameters['monto_canc_matr'],
            "monto_efec_doc_pago" => $parameters['monto_efec_doc_pago'],
            "monto_rest_doc_pago" => $parameters['monto_rest_doc_pago'],
            "cancela_ins" => $parameters['cancela_ins'],
            "cancela_matr" => $parameters['cancela_matr'],
            "nro_credito" => $parameters['nro_credito'],
            "forma_pago" => $parameters['forma_pago'],
            "descuento_mat" => $parameters['descuento_mat'],
            "observ_pago" => $parameters['observ_pago'],
            "costo_inscrip_conv_mat" => $parameters['costo_inscrip_conv_mat'],
            "costo_materias_conv_mat" => $parameters['costo_materias_conv_mat']);

        $this->db->where("id_matr", $id_matr);
        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }
    function actualizaCostoSemestre($costo_semestre_mat, $id_matr) {
        $this->db->trans_start();
        $update = array(
            "costo_semestre_mat" => $costo_semestre_mat);

        $this->db->where("id_matr", $id_matr);
        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }
    function getCostoSemestre($id_matr) {
        $this->db->select('costo_semestre_mat');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $costo_semestre_mat = $data[0]['costo_semestre_mat'];
        }
        $query->free_result();
        return $costo_semestre_mat;
    }
    function actualizaHojavalor($hoja_valor_mat, $id_matr) {
        $this->db->trans_start();
        $update = array(
            "hoja_valor_mat" => $hoja_valor_mat);

        $this->db->where("id_matr", $id_matr);
        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }
    function getHojavalor($id_matr) {
        $this->db->select('hoja_valor_mat');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $hoja_valor_mat = $data[0]['hoja_valor_mat'];
        }
        $query->free_result();
        return $hoja_valor_mat;
    }

    function actualizafechadeposito($fecha, $id_matr) {
        $this->db->trans_start();
        $update = array(
            "fechadep_doc_pago_mat" => $fecha);

        $this->db->where("id_matr", $id_matr);
        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }
    
    function getactualizafechadeposito($id_matr) {
        $this->db->select('fechadep_doc_pago_mat');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $fechadep_doc_pago_mat = $data[0]['fechadep_doc_pago_mat'];
        }
        $query->free_result();
        return $fechadep_doc_pago_mat;
    }
    function actualizaSaldoAfavor($saldo, $id_matr) {
        $this->db->trans_start();
        $update = array(
            "saldo_favor_mat" => $saldo);

        $this->db->where("id_matr", $id_matr);
        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }
    function getSaldoAfavor($id_matr) {
        $this->db->select('saldo_favor_mat');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $saldo_favor_mat = $data[0]['saldo_favor_mat'];
        }
        $query->free_result();
        return $saldo_favor_mat;
    }
    
    function actualizaBeneficio($ben, $id_matr) {
        $this->db->trans_start();
        $update = array(
            "beneficio_mat" => $ben);

        $this->db->where("id_matr", $id_matr);
        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }
    function getBeneficio($id_matr) {
        $this->db->select('beneficio_mat');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $beneficio_mat = $data[0]['beneficio_mat'];
        }
        $query->free_result();
        return $beneficio_mat;
    }
    function grabaretiro($parameters) {
        $this->db->trans_start();
        $update = array(
            "estado_matr" => $parameters['estado_matr'],
            "motivo_ret_mat" => $parameters['motivo_ret_mat'],);
        //print_r($update);
        //print_r($parameters['id_matr']);
        

        $this->db->where("id_matr", $parameters['id_matr']);
        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }

    
    function eliminarMatricula($parameters) {
        $this->db->trans_start();
        $update = array("eliminado" => 1);
        $this->db->where("id_matr", $parameters['id_matr']);

        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }
    
    function activarMatricula($parameters) {
        $this->db->trans_start();
        $update = array("eliminado" => 0);
        $this->db->where("id_matr", $parameters['id_matr']);

        $this->db->update("matriculas", $update);
        $this->db->trans_complete();
    }

    
    function getDatosMatricula($id_matr) {
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
        }
        $query->free_result();
        return $data;
    }
    

    function getInscritosPorSemestre($ide_lec, $insc,$modo_mat) {

        $this->db->select('persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.fechapre_matr,matriculas.cancela_ins,matriculas.cancela_matr,
            matriculas.inscrip_matr,matriculas.modo_mat, carrera.nombre_car, ciclos.nombre_cic');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);

        if ($insc == 0) { //solo inscriotos
            $this->db->where('(matriculas.inscrip_matr=0 )');
        } elseif ($insc == 1) { //inscritos 0 inscrito y matriculado        }

            $this->db->where('((matriculas.inscrip_matr=0) OR (matriculas.inscrip_matr =1))');
        } elseif ($insc == 2) { //inscritos que cancelan inscripcion o inscrito y matriculado
            $this->db->where('((matriculas.inscrip_matr=0 AND matriculas.cancela_ins = 1) OR (matriculas.inscrip_matr =1))');
        } elseif ($insc == 3) { //cancelado la inscripcion
            $this->db->where('(matriculas.cancela_ins =1 AND (matriculas.inscrip_matr=0 OR matriculas.inscrip_matr =1))');
        } elseif ($insc == 4) { //inscritos no cancelan inscripcion
            $this->db->where('((matriculas.inscrip_matr=0 AND matriculas.cancela_ins = 0) OR (matriculas.inscrip_matr =1))');
        }
         if ($modo_mat > 0) {
                $this->db->where('matriculas.modo_mat', $modo_mat); //inscritos normales
         }
        $this->db->where('matriculas.eliminado', 0);
        $this->db->order_by('persona.cedula_pers');
        $this->db->order_by('persona.apellido_pers');
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    function getMatriculadosPorSemestre($ide_lec, $estado_mat, $inscrip_matr, $ciclo='') {


        $this->db->select(' persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, persona.direccion_pers, persona.fono_pers, persona.celular_pers, persona.email_inst_pers,  
            matriculas.id_matr,matriculas.cancela_ins,matriculas.cancela_matr,matriculas.estado_matr,matriculas.modo_mat,
            carrera.nombre_car, ciclos.nombre_cic,ciclos.codigo_cic, cursa.seccion, cursa.paralelo');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);
        if ($estado_mat == 0) //inscritos y matriculados
            $this->db->where('(matriculas.estado_matr=1 OR matriculas.estado_matr=2)');
        if ($estado_mat == 1) //en proceso
            $this->db->where('(matriculas.estado_matr=1)');
        if ($estado_mat == 2) //matricula aceptada
            $this->db->where('(matriculas.estado_matr=2 OR matriculas.estado_matr=5)');

        //$this->db->where('(matriculas.modo_mat=3 )');
        //$this->db->where('(matriculas.modo_mat<>3 )');
       // $this->db->where('matriculas.inscrip_matr', $inscrip_matr);
        $this->db->where('matriculas.eliminado', 0);
        $this->db->group_by('matriculas.id_matr');
        //$this->db->order_by('persona.cedula_pers');
        $this->db->order_by('persona.apellido_pers');
        $this->db->order_by('ciclos.codigo_cic', "desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    function getRetidosPorSemestre($ide_lec,$id_matr=0) {


        $this->db->select(' persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.estado_matr,matriculas.modo_mat,matriculas.motivo_ret_mat,carrera.nombre_car, 
            ciclos.nombre_cic,cursa.seccion,cursa.paralelo');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);
        if($id_matr>0){
            $this->db->where("id_matr", $id_matr);
            
        }
        $this->db->where('matriculas.estado_matr',5);
        $this->db->where('matriculas.eliminado', 0);
        $this->db->group_by('matriculas.id_matr');
        //$this->db->order_by('persona.cedula_pers');
        $this->db->order_by('persona.apellido_pers');
        $this->db->order_by('ciclos.codigo_cic', "desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    function getDevolucionesPorSemestre($ide_lec,$id_matr=0) {


        $this->db->select(' persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.estado_matr,matriculas.modo_mat,matriculas.motivo_ret_mat,carrera.nombre_car, 
            ciclos.nombre_cic,cursa.seccion,cursa.paralelo');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);
        if($id_matr>0){
            $this->db->where("id_matr", $id_matr);
            
        }
        $this->db->where('matriculas.estado_matr',4);
        $this->db->where('matriculas.eliminado', 1);
        $this->db->group_by('matriculas.id_matr');
        //$this->db->order_by('persona.cedula_pers');
        $this->db->order_by('persona.apellido_pers');
        $this->db->order_by('ciclos.codigo_cic', "desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }
    

    function getMatriculadosPorSemestreCriterio($valor, $tipo,$ide_lec, $estado_mat, $inscrip_matr) {
        if ($tipo == 1)
            $criterio = "persona.cedula_pers LIKE '%$valor%'";
        elseif ($tipo == 2)
            $criterio = "persona.apellido_pers LIKE '%$valor%'";
        else
            $criterio = "persona.nombre_pers LIKE '%$valor%'";

        $this->db->select(' persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.cancela_ins,matriculas.cancela_matr,matriculas.estado_matr,matriculas.modo_mat,
            carrera.nombre_car, ciclos.nombre_cic,ciclos.codigo_cic');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);
        $this->db->where($criterio);

        if ($estado_mat == 0) //inscritos y matriculados
            $this->db->where('(matriculas.estado_matr=1 OR matriculas.estado_matr=2)');
        if ($estado_mat == 1) //en proceso
            $this->db->where('(matriculas.estado_matr=1)');
        if ($estado_mat == 2) //matricula aceptada
            $this->db->where('(matriculas.estado_matr=2)');

        //$this->db->where('(matriculas.estado_matr=1 OR matriculas.estado_matr=2)');
        $this->db->where('(matriculas.modo_mat<>3 )');
        $this->db->where('matriculas.inscrip_matr', $inscrip_matr);
        $this->db->where('matriculas.eliminado', 0);
        $this->db->group_by('persona.cedula_pers');
        //$this->db->order_by('persona.cedula_pers');
        //$this->db->order_by('persona.apellido_pers');
        //$this->db->order_by('ciclos.codigo_cic', "desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }
    
    function getConvalidacionPorSemestre($ide_lec, $estado_mat, $inscrip_matr) {


        $this->db->select(' persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.cancela_ins,matriculas.cancela_matr,matriculas.estado_matr,matriculas.modo_mat,
            carrera.nombre_car, ciclos.nombre_cic,ciclos.codigo_cic');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);
        if ($estado_mat == 0) //inscritos y matriculados
            $this->db->where('(matriculas.estado_matr=1 OR matriculas.estado_matr=2)');
        if ($estado_mat == 1) //en proceso
            $this->db->where('(matriculas.estado_matr=1)');
        if ($estado_mat == 2) //matricula aceptada
            $this->db->where('(matriculas.estado_matr=2)');

        $this->db->where('(matriculas.modo_mat=3 )');
        $this->db->where('matriculas.inscrip_matr', $inscrip_matr);
        $this->db->where('matriculas.eliminado', 0);
        $this->db->group_by('persona.cedula_pers');
        //$this->db->order_by('persona.cedula_pers');
        $this->db->order_by('persona.apellido_pers');
        $this->db->order_by('ciclos.codigo_cic', "desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    function getConvalidacionPorSemestreCriterio($valor, $tipo,$ide_lec, $estado_mat, $inscrip_matr) {
        if ($tipo == 1)
            $criterio = "persona.cedula_pers LIKE '%$valor%'";
        elseif ($tipo == 2)
            $criterio = "persona.apellido_pers LIKE '%$valor%'";
        else
            $criterio = "persona.nombre_pers LIKE '%$valor%'";

        $this->db->select(' persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.cancela_ins,matriculas.cancela_matr,matriculas.estado_matr,matriculas.modo_mat,
            carrera.nombre_car, ciclos.nombre_cic,ciclos.codigo_cic');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);
        $this->db->where($criterio);

        if ($estado_mat == 0) //inscritos y matriculados
            $this->db->where('(matriculas.estado_matr=1 OR matriculas.estado_matr=2)');
        if ($estado_mat == 1) //en proceso
            $this->db->where('(matriculas.estado_matr=1)');
        if ($estado_mat == 2) //matricula aceptada
            $this->db->where('(matriculas.estado_matr=2)');

        //$this->db->where('(matriculas.estado_matr=1 OR matriculas.estado_matr=2)');
        $this->db->where('(matriculas.modo_mat=3 )');
        $this->db->where('matriculas.inscrip_matr', $inscrip_matr);
        $this->db->where('matriculas.eliminado', 0);
        $this->db->group_by('persona.cedula_pers');
        //$this->db->order_by('persona.cedula_pers');
        //$this->db->order_by('persona.apellido_pers');
        //$this->db->order_by('ciclos.codigo_cic', "desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    function getMatpMateriasPorSemestre($ide_lec, $estado_mat, $inscrip_matr) {


        $this->db->select(' persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.cancela_ins,matriculas.cancela_matr,matriculas.estado_matr,matriculas.modo_mat,
            carrera.nombre_car, ciclos.nombre_cic,ciclos.codigo_cic');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);
        if ($estado_mat == 0) //inscritos y matriculados
            $this->db->where('(matriculas.estado_matr=1 OR matriculas.estado_matr=2)');
        if ($estado_mat == 1) //en proceso
            $this->db->where('(matriculas.estado_matr=1)');
        if ($estado_mat == 2) //matricula aceptada
            $this->db->where('(matriculas.estado_matr=2)');

        $this->db->where('(matriculas.modo_mat=5 )');
        $this->db->where('matriculas.inscrip_matr', $inscrip_matr);
        $this->db->where('matriculas.eliminado', 0);
        $this->db->group_by('persona.cedula_pers');
        //$this->db->order_by('persona.cedula_pers');
        $this->db->order_by('persona.apellido_pers');
        $this->db->order_by('ciclos.codigo_cic', "desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }
    
    function getTodosPorSemestre($ide_lec, $estado_mat, $inscrip_matr) {


        $this->db->select(' persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.cancela_ins,matriculas.cancela_matr,matriculas.estado_matr,matriculas.modo_mat,
            carrera.nombre_car, ciclos.nombre_cic,ciclos.codigo_cic');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);
        if ($estado_mat == 0) //inscritos y matriculados
            $this->db->where('(matriculas.estado_matr=1 OR matriculas.estado_matr=2)');
        if ($estado_mat == 1) //en proceso
            $this->db->where('(matriculas.estado_matr=1)');
        if ($estado_mat == 2) //matricula aceptada
            $this->db->where('(matriculas.estado_matr=2)');

        $this->db->where('matriculas.inscrip_matr', $inscrip_matr);
        $this->db->where('matriculas.eliminado', 0);
        $this->db->group_by('persona.cedula_pers');
        //$this->db->order_by('persona.cedula_pers');
        $this->db->order_by('persona.apellido_pers');
        $this->db->order_by('ciclos.codigo_cic', "desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    function getTodosPorSemestreCriterio($valor, $tipo,$ide_lec, $estado_mat, $inscrip_matr) {
        if ($tipo == 1)
            $criterio = "persona.cedula_pers LIKE '%$valor%'";
        elseif ($tipo == 2)
            $criterio = "persona.apellido_pers LIKE '%$valor%'";
        else
            $criterio = "persona.nombre_pers LIKE '%$valor%'";

        $this->db->select(' persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.cancela_ins,matriculas.cancela_matr,matriculas.estado_matr,matriculas.modo_mat,
            carrera.nombre_car, ciclos.nombre_cic,ciclos.codigo_cic');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);
        $this->db->where($criterio);

        if ($estado_mat == 0) //inscritos y matriculados
            $this->db->where('(matriculas.estado_matr=1 OR matriculas.estado_matr=2)');
        if ($estado_mat == 1) //en proceso
            $this->db->where('(matriculas.estado_matr=1)');
        if ($estado_mat == 2) //matricula aceptada
            $this->db->where('(matriculas.estado_matr=2)');

        //$this->db->where('(matriculas.estado_matr=1 OR matriculas.estado_matr=2)');
        $this->db->where('matriculas.inscrip_matr', $inscrip_matr);
        $this->db->where('matriculas.eliminado', 0);
        $this->db->group_by('persona.cedula_pers');
        //$this->db->order_by('persona.cedula_pers');
        //$this->db->order_by('persona.apellido_pers');
        //$this->db->order_by('ciclos.codigo_cic', "desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }
/*
 *  SELECT DISTINCT `cursa`.`periodos_lectivos_ide_lec`, `estudiante`.`ide_est`, `persona`.`ide_pers`, `persona`.`cedula_pers`, `persona`.`apellido_pers`, `persona`.`nombre_pers`, `matriculas`.`id_matr`, `matriculas`.`modo_mat`, `carrera`.`nombre_car`, `ciclos`.`nombre_cic`, `ciclos`.`codigo_cic` FROM (`estudiante`) INNER JOIN `matriculas` ON `estudiante`.`ide_est` = `matriculas`.`estudiante_ide_est` INNER JOIN `cursa` ON `matriculas`.`id_matr` = `cursa`.`matriculas_id_matr` INNER JOIN `persona` ON `persona`.`ide_pers` = `estudiante`.`persona_ide_pers` INNER JOIN `carrera` ON `cursa`.`ide_car` = `carrera`.`ide_car` INNER JOIN `ciclos` ON `cursa`.`ide_cic` = `ciclos`.`ide_cic` WHERE `cursa`.`periodos_lectivos_ide_lec` = 8 AND (matriculas.inscrip_matr =3 OR matriculas.inscrip_matr=4 ) AND `matriculas`.`eliminado` = 0 AND `estudiante`.`ide_est` NOT IN (SELECT cursa.`estudiante_ide_est` FROM cursa WHERE (periodos_lectivos_ide_lec=9)) ORDER BY `persona`.`apellido_pers`, `ciclos`.`codigo_cic` DESC
 */
    
    function getMatriculadosPorSemestreAnterior($ide_lec_ant,$ide_lec_act) {
        $cadsql = "estudiante.ide_est NOT IN "
                . "(SELECT DISTINCT estudiante_ide_est "
                . "FROM cursa  "
                . "WHERE (periodos_lectivos_ide_lec=$ide_lec_act))";
                //. "WHERE (cursa.periodos_lectivos_ide_lec=$ide_lec_act))";
        

        $this->db->select('cursa.periodos_lectivos_ide_lec,estudiante.ide_est,persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.modo_mat,carrera.nombre_car, ciclos.nombre_cic,ciclos.codigo_cic');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec', $ide_lec_ant);
        $this->db->where('(matriculas.inscrip_matr >2)');
        //$this->db->where('(matriculas.inscrip_matr =3 OR matriculas.inscrip_matr=4 )');
        $this->db->where('matriculas.eliminado', 0);
        $this->db->where($cadsql);

        //
        //$this->db->order_by('persona.cedula_pers');
        
        
        //$this->db->group_by('persona.cedula_pers');
        $this->db->order_by('persona.apellido_pers');
        $this->db->order_by('ciclos.codigo_cic', "desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    function getMatriculadosPorSemestreAnteriorCriterio($valor, $tipo,$ide_lec_ant,$ide_lec_act) {
        if ($tipo == 1)
            $criterio = "persona.cedula_pers LIKE '%$valor%'";
        elseif ($tipo == 2)
            $criterio = "persona.apellido_pers LIKE '%$valor%'";
        else
            $criterio = "persona.nombre_pers LIKE '%$valor%'";
        
        $cadsql = "estudiante.ide_est NOT IN "
                . "(SELECT DISTINCT cursa.estudiante_ide_est "
                . "FROM persona  "
                . "INNER JOIN estudiante ON (persona.ide_pers = estudiante.persona_ide_pers)  "
                . "INNER JOIN cursa ON (estudiante.ide_est = cursa.estudiante_ide_est)  "
                . "WHERE (periodos_lectivos_ide_lec=$ide_lec_act) AND ".$criterio ." "
                . "ORDER BY estudiante_ide_est)";
                //. "WHERE (cursa.periodos_lectivos_ide_lec=$ide_lec_act))";
        

        $this->db->select('cursa.periodos_lectivos_ide_lec,estudiante.ide_est,persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.modo_mat,carrera.nombre_car, ciclos.nombre_cic,ciclos.codigo_cic');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec', $ide_lec_ant);
        $this->db->where('(matriculas.inscrip_matr >2)');
        $this->db->where('matriculas.eliminado', 0);
        $this->db->where($criterio);
        $this->db->where($cadsql);
        

        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }

    
    function getNroMatricula($ide_lec) {
        $nro_mat = 0;
         $this->db->trans_start();
        $this->db->select_max('matriculas.nro_matr', 'nro');
        $this->db->from('matriculas');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec', $ide_lec);
        $this->db->where('(matriculas.inscrip_matr =3 or matriculas.inscrip_matr =4)');
        //$this->db->or_where('matriculas.inscrip_matr', 4);
        $this->db->where('matriculas.eliminado', 0);
        //opcion puede ser 3 para matriculas de primer ciclo o 4 para todos los demas ciclos
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $nro_mat = $data[0]['nro'];
        }
        $query->free_result();
        $this->db->trans_complete();
        return $nro_mat;
    }
        function getIdeMatriculaAsignadoPeriodo($ide_lec,$nro_matr) {
        $nro_mat = 0;
        $this->db->select('matriculas.id_matr');
        $this->db->distinct();
        $this->db->from('matriculas');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec', $ide_lec);
        $this->db->where('matriculas.nro_matr', $nro_matr);
        $this->db->where('matriculas.eliminado', 0);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $nro_mat = $data[0]['id_matr'];
        }
        $query->free_result();
        return $nro_mat;
    }

        function getNroMatriculaAsignado($id_matr) {
        $this->db->select('nro_matr');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $nro_matr= $data[0]['nro_matr'];
        }
        $query->free_result();
        return $nro_matr;
    }

      function getFechaMatriculaAsignado($id_matr) {
        $this->db->select('fecha_matr');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $fecha_matr= $data[0]['fecha_matr'];
        }
        $query->free_result();
        return $fecha_matr;
    }

      function getFormaPagoAsignado($id_matr) {
        $this->db->select('forma_pago');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $forma_pago= $data[0]['forma_pago'];
        }
        $query->free_result();
        return $forma_pago;
    }
    
        function getEstadoMatAsignado($id_matr) {
        $this->db->select('estado_matr');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $estado_matr = $data[0]['estado_matr'];
        }
        $query->free_result();
        return $estado_matr;
    }
        function getTipoMatAsignado($id_matr) {
        $this->db->select('tipo_matr');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $tipo_matr = $data[0]['tipo_matr'];
        }
        $query->free_result();
        return $tipo_matr;
    }    

        function getResolMatAsignado($id_matr) {
        $this->db->select('tipo_resol_mat');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $tipo_resol_mat = $data[0]['tipo_resol_mat'];
        }
        $query->free_result();
        return $tipo_resol_mat;
    }

    
        function getCancelaInsAsignado($id_matr) {
        $this->db->select('cancela_ins');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $cancela_ins= $data[0]['cancela_ins'];
        }
        $query->free_result();
        return $cancela_ins;
    }
        function getCancelaInscripcionAsignado($id_matr) {
        $this->db->select('cancela_ins');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $cancela_ins= $data[0]['cancela_ins'];
        }
        $query->free_result();
        return $cancela_ins;
    }
    

        function getFechaInscripcionAsignado($id_matr) {
        $this->db->select('fecha_canc_ins');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $fecha_canc_ins = $data[0]['fecha_canc_ins'];
        }
        $query->free_result();
        return $fecha_canc_ins;
    }
        function getMontoInscripcionAsignado($id_matr) {
        $this->db->select('monto_canc_ins');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $monto_canc_ins = $data[0]['monto_canc_ins'];
        }
        $query->free_result();
        return $monto_canc_ins;
    }
    

    function getNroCredito($ide_lec) {
        $nro_mat = 0;
        $this->db->select_max('matriculas.nro_credito', 'nro');
        $this->db->from('matriculas');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec', $ide_lec);
        $this->db->where('(matriculas.inscrip_matr =3 or matriculas.inscrip_matr =4)');
        $this->db->where('matriculas.eliminado', 0);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $nro_mat = $data[0]['nro'];
        }
        $query->free_result();
        return $nro_mat;
    }
        function getNroCreditoAsignado($id_matr) {
        $this->db->select('nro_credito');
        $this->db->from('matriculas');
        $this->db->where('id_matr', $id_matr);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $nro_credito = $data[0]['nro_credito'];
        }
        $query->free_result();
        return $nro_credito;
    }

    function getNroRecibo($ide_lec) {
        $nro_mat = 0;
        $this->db->select_max('matriculas.nro_recibo_mat', 'nro');
        $this->db->from('matriculas');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec', $ide_lec);
        //$this->db->where('(matriculas.inscrip_matr =3 or matriculas.inscrip_matr =4)');
        $this->db->where('matriculas.eliminado', 0);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $nro_mat = $data[0]['nro'];
        }
        $query->free_result();
        return $nro_mat;

        }

    function getModo_mat($id_matr) {
        $modo_mat="";
        $this->db->select('modo_mat');
        $this->db->from('matriculas');
        $this->db->where('id_matr',$id_matr);
        $this->db->where('matriculas.eliminado', 0);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $modo_mat = $data[0]['modo_mat'];
        }
        $query->free_result();
        return $modo_mat;

    }

    function grabarRecibo($parameters) {
        $update = array(
            "nro_recibo_mat" => $parameters['nro_recibo_mat'],
            "tipo_doc_pago_mat" => $parameters['tipo_doc_pago_mat'],
            "nom_doc_pago_mat" => $parameters['nom_doc_pago_mat'],
            "nro_comp_pago_mat" => $parameters['nro_comp_pago_mat'],
            "lote_doc_pago_mat" => $parameters['lote_doc_pago_mat'],
            "ref_doc_pago_mat" => $parameters['ref_doc_pago_mat']);


        $this->db->where("id_matr", $parameters['id_matr']);
        $this->db->update("matriculas", $update);
    }
    
        function grabarMontos($parameters) {
        $update = array(
            "monto_efec_doc_pago" => $parameters['monto_efec_doc_pago'],
            "monto_rest_doc_pago" => $parameters['monto_rest_doc_pago']);


        $this->db->where("id_matr", $parameters['id_matr']);
        $this->db->update("matriculas", $update);
    }
    function getMonto_efec($id_matr) {
        $monto_efec_doc_pago="";
        $this->db->select('monto_efec_doc_pago');
        $this->db->from('matriculas');
        $this->db->where('id_matr',$id_matr);
        $this->db->where('matriculas.eliminado', 0);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $monto_efec_doc_pago = $data[0]['monto_efec_doc_pago'];
        }
        $query->free_result();
        return $monto_efec_doc_pago;

    }

    function actualizaCon_ciclo($valor,$id_matr) {
        $update = array("con_ciclo_mat" => $valor);
        $this->db->where("id_matr", $id_matr);
        $this->db->update("matriculas", $update);
    }
    function VerificaExisteNromat($ide_lec,$nro_matr) {
        $existe=false;
        $this->db->select('matriculas.nro_matr');
        $this->db->distinct();
        $this->db->from('matriculas');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec', $ide_lec);
        $this->db->where('matriculas.nro_matr', $nro_matr);
        $this->db->where('matriculas.eliminado', 0);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            if($data[0]['nro_matr']>0){
                $existe=true;
            }
            
            
            
        }
        $query->free_result();
        return $existe;
    }

    function actualizaNro_mat($cambio) {
        $update = array("nro_matr" => $cambio['nro_matr']);
        $this->db->where("id_matr", $cambio['id_matr']);
        $this->db->update("matriculas", $update);
    }

    function getCon_ciclo($id_matr) {
        $con_ciclo=0;
        $this->db->select('con_ciclo_mat');
        $this->db->from('matriculas');
        $this->db->where('id_matr',$id_matr);
        $this->db->where('matriculas.eliminado', 0);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $con_ciclo = $data[0]['con_ciclo_mat'];
        }
        $query->free_result();
        return $con_ciclo;

    }

    function getMonto_restpago($id_matr) {
        $monto_rest_doc_pago="";
        $this->db->select('monto_rest_doc_pago');
        $this->db->from('matriculas');
        $this->db->where('id_matr',$id_matr);
        $this->db->where('matriculas.eliminado', 0);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $monto_rest_doc_pago = $data[0]['monto_rest_doc_pago'];
        }
        $query->free_result();
        return $monto_rest_doc_pago;

    }
    
    function getInscritosPorSemestreCriterio($valor, $tipo,$ide_lec, $insc,$modo_mat) {
        if ($tipo == 1)
            $criterio = "persona.cedula_pers LIKE '%$valor%'";
        elseif ($tipo == 2)
            $criterio = "persona.apellido_pers LIKE '%$valor%'";
        else
            $criterio = "persona.nombre_pers LIKE '%$valor%'";

        $this->db->select(' persona.ide_pers,persona.cedula_pers, persona.apellido_pers, persona.nombre_pers, 
            matriculas.id_matr,matriculas.fechapre_matr,matriculas.cancela_ins,matriculas.cancela_matr,
            matriculas.inscrip_matr,matriculas.modo_mat, carrera.nombre_car, ciclos.nombre_cic');
        $this->db->distinct();
        $this->db->from('estudiante');
        $this->db->join('matriculas', 'estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('persona', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('carrera', 'cursa.ide_car = carrera.ide_car', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec ', $ide_lec);
        $this->db->where($criterio);


        if ($insc == 0) { //solo inscriotos
            $this->db->where('(matriculas.inscrip_matr=0 )');
        } elseif ($insc == 1) { //inscritos 0 inscrito y matriculado        }

            $this->db->where('((matriculas.inscrip_matr=0) OR (matriculas.inscrip_matr =1))');
        } elseif ($insc == 2) { //inscritos que cancelan inscripcion o inscrito y matriculado
            $this->db->where('((matriculas.inscrip_matr=0 AND matriculas.cancela_ins = 1) OR (matriculas.inscrip_matr =1))');
        } elseif ($insc == 3) { //cancelado la inscripcion
            $this->db->where('(matriculas.cancela_ins =1 AND (matriculas.inscrip_matr=0 OR matriculas.inscrip_matr =1))');
        } elseif ($insc == 4) { //inscritos no cancelan inscripcion
            $this->db->where('((matriculas.inscrip_matr=0 AND matriculas.cancela_ins = 0) OR (matriculas.inscrip_matr =1))');
        }
         if ($modo_mat > 0) {
                $this->db->where('matriculas.modo_mat', $modo_mat); //inscritos normales
         }
        $this->db->where('matriculas.eliminado', 0);
        $this->db->order_by('persona.cedula_pers');
        $this->db->order_by('persona.apellido_pers');
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                $data[] = $row; //$row;
            }
            $query->free_result();
            return $data;
        } else {
            return null;
        }
    }
    
    function getEstudianteCicloAnterior($ide_est,$codigo_cic){
        $this->db->select(' matriculas.estudiante_ide_est,matriculas.fecha_matr,matriculas.modo_mat
    ,ciclos.codigo_cic,ciclos.nombre_cic, matriculas.id_matr');
        $this->db->from('matriculas');
        $this->db->join('cursa', 'matriculas.id_matr = cursa.matriculas_id_matr', 'inner');
        $this->db->join('ciclos', 'cursa.ide_cic = ciclos.ide_cic', 'inner');
        $this->db->where('matriculas.estudiante_ide_est', $ide_est);
        $this->db->where('ciclos.codigo_cic <',$codigo_cic);
        $this->db->group_by('matriculas.id_matr');
        $this->db->order_by('ciclos.codigo_cic',"desc");
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            foreach ($query->result_array() as $row) {
                
                $data[] = $row; //$row;
            }
            
            $modo_mat=$data[0]['modo_mat'];
            $nombre_cic=($modo_mat==1?$data[0]['nombre_cic']:
                             ($modo_mat==2?$data[0]['nombre_cic']:
                             ($modo_mat==3?"CONVALIDA":($modo_mat==4?"ARRASTRE":"MATERIAS"))));           
            
            $query->free_result();
            
            //print_r($data);
        } else {
            $nombre_cic="BACHILLER";
            
        }        
        return $nombre_cic;
        
        
    }

function getExisteMatriculaIde($ide_est,$ide_per) {
        $this->db->select('matriculas.id_matr,persona.cedula_pers,persona.nombre_pers
            ,persona.apellido_pers, cursa.periodos_lectivos_ide_lec');
        
        $this->db->from('persona');
        $this->db->join('estudiante', 'persona.ide_pers = estudiante.persona_ide_pers', 'inner');
        $this->db->join('matriculas','estudiante.ide_est = matriculas.estudiante_ide_est', 'inner');
        $this->db->join('cursa','matriculas.id_matr =  cursa.matriculas_id_matr', 'inner');
        $this->db->where('cursa.periodos_lectivos_ide_lec', $ide_per);
        $this->db->where('estudiante.ide_est',$ide_est);
        $this->db->group_by('matriculas.id_matr');
        $query = $this->db->get();
        $id_matr=0;
        if ($query->num_rows() > 0) {
            $data=$query->result_array();
            $id_matr = $data[0]['id_matr'];
        }
        $query->free_result();
        return $id_matr;

    }


}
